import java.util.ArrayList;
import java.util.List;

/**
 * @author zhangshuai
 * @version V1.0
 * @Project Java2_26
 * @Package PACKAGE_NAME
 * @Description:
 * @Date 2025/5/15 9:18
 */

public class Array1 {

    //数组：是一个容器，可以存储多个数据，但是数据类型必须一致，数组的长度是固定的，不能改变，数组的下标从0开始，到数组的长度-1结束。查询效率高，增删效率低。
    //数组的定义：数据类型[] 数组名 = new 数据类型[数组长度];
    //数组的定义：数据类型[] 数组名 = {元素1,元素2,元素3,元素4,元素5};
    //数组的定义：数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3,元素4,元素5};
    //数组的定义：数据类型[] 数组名 = new 数据类型[数组长度]{元素1,元素2,元素3,元素4,元素5};
    //1.数组的定义
    /*
    * new:
			1:java 关键字。
			2:用来向jvm 申请内存。
			3：元素的个数 和 元素的数据 类型 决定了整个数组占用的内存空间大小。
			4：new 关键字申请的内存是在堆内存中。申请到的内存的首地址由new 返回病赋值给左边的变量。
			5：数组变量|数组引用|对象变量|对象引用：保存的是数组在堆内存中的首地址。*/
    public static void main(String[] args) {

        List<String> list = new ArrayList<>();

        // 定义一个整型数组
            int[] arr = {1,2,3,4,5};
            // 定义一个字符串数组
            String[] arr1 = {"找那个","阿斯顿就发生了大家","3","4","5"};
            // 定义一个学生对象
            Student student1 = new Student("张三", 18);
            // 定义另一个学生对象
            Student student2 = new Student("李四", 19);
            // 定义一个学生数组，包含两个学生对象
            Student[] arr2 = {student1, student2};

            // 定义一个整型数组，长度为5
            int[] ints = new int[5];
            // 定义一个字符串数组，长度为5
            String[] strings = new String[5];
            // 定义一个学生数组，长度为5
            Student[] students = new Student[5];

            // 定义一个整型数组，并初始化
            int[] ints1 = new int[]{1, 2, 3, 4, 5};
            // 定义一个字符串数组，并初始化
            String[] strings1 = new String[]{"1", "2", "3", "4", "5"};
            // 定义一个学生数组，并初始化，包含两个学生对象
            Student[] students1 = {student1, student2};

            //数组中根据下标获取元素
            // 定义一个整型数组，并初始化
            int[] ints2 = new int[]{1, 2, 3, 4, 5};
        System.out.println(ints2[0]);
        System.out.println(ints2[1]);
        System.out.println(ints2[2]);
        System.out.println(ints2[3]);
        System.out.println(ints2[4]);
        System.out.println(ints2.length);
        //数组的遍历 for i 循环
        /*for(int i = 0; i < ints2.length; i++){
            System.out.println(ints2[i]);
        }*/
        //数组的遍历 for each 循环
        for(int i : ints2){
            System.out.println(i);
        }

        for (int i = 0; i < ints2.length; i++) {
            System.out.println(ints2[i]);
        }
        //数组的遍历 for each 循环
        for (int i : ints2) {
            System.out.println(i);
        }

    }
}
class Student{
    private String name;
    private int age;



    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
}